package com.niiwoo.civet.user.service;

import com.niiwoo.civet.user.dto.response.ThirdAuthResponseDTO;
import com.niiwoo.civet.user.enums.SocialSecurityDataTypeEnum;
import com.niiwoo.civet.user.enums.UserDataStatusEnum;

import java.util.Date;

/**
 * 用户社保授权接口类
 *
 * @author zzl
 * @date 2017/11/27 22:25
 */
public interface UserAuthSocialDubboService {

    /**
     * 获取天秤第三方授权h5页面的url
     *
     * @param userId   用户id
     * @param createIp 用户客户端请求ip
     * @return com.niiwoo.civet.user.dto.response.ThirdAuthResponseDTO
     * @author zzl
     * @date 2017/11/22 16:20
     */
    ThirdAuthResponseDTO getThirdAuthUrl(String userId, String createIp, String city);

    /**
     * 查询天秤并保存社保详细信息（天秤数据回调后使用）
     * @author zzl
     * @date 2017/12/11 13:54
     * @param userId 用户id
     * @param socialSecurityAuthCity 社保缴纳城市，可为空。（如果为空从数据库查询社保缴纳城市）
     * @param socialSecurityDataTypeEnum 数据查询类型
     * @return java.lang.Integer
     */
    Integer saveSocialSecurity(String userId, String socialSecurityAuthCity, SocialSecurityDataTypeEnum socialSecurityDataTypeEnum);

    /**
     * 保存社保状态及所在城市信息
     *
     * @param userId, socialSecurityAuthCity, statusEnum,authDate,userDataTypeEnum
     * @return void
     * @author zzl
     * @date 2017/12/3 17:00
     */
    void saveUserSocialInfo(String userId, String socialSecurityAuthCity, UserDataStatusEnum.SocialSecurityStatus statusEnum, Date authDate);

    /**
     * 融360渠道保存社保资料
     *
     * @param userId, socialSecurityAuthCity, statusEnum, authTime
     * @return void
     * @author zzl
     * @date 2017/12/11 13:43
     */
    void saveUserSocialInfoForR360(String userId, String socialSecurityAuthCity, UserDataStatusEnum.SocialSecurityStatus statusEnum, Date authTime);

    /**
     * 神盾后台刷新同步天秤的用户社保信息
     *
     * @author zzl
     * @date 2018/1/15 16:41
     * @param  userId 用户id
     * @return
     */
    void refreshSocialSecurity(String userId);
}
